Page source: |
1: $website.include("options")
2: #set ($options = $request.getAttribute("options"))
3:
4: #set ($rosterLayout = "list")
5: #set ($showHeadshotView = false)
6:
7: #if ($options.get("roster_show_headshot_view") == true)
8: #set ($showHeadshotView = true)
9:
10: #foreach ($cookie in $request.cookies)
11: #if ($cookie.name == "roster_view")
12: #set ($rosterLayout = $cookie.value)
13: #end
14: #end
15: #end
16:
17: #if ($options.get("roster_default_view"))
18: #set ($rosterLayout = $options.get("roster_default_view"))
19: #end
20:
21: #if ($request.getParameter("view"))
22: #set ($view = $request.getParameter("view"))
23: #if ($view == "list" || $view == "headshot")
24: #set ($rosterLayout = $view)
25: #end
26: #end
27:
28: #set ($rosterFields = ["number","first_name: :last_name","position","year","height","weight","hometown:/:highschool"])
29: #set ($rosterLabels = ["No.","Name","Pos.","Cl.","Ht.","Wt.","Hometown/High School"])
30: #set ($rosterSortables = ["number","last_name","year","position"])
31:
32: #if ($options.get("roster_fields") && $options.get("roster_labels"))
33: #set ($rosterFieldsString = $options.get("roster_fields"))
34: #set ($rosterLabelsString = $options.get("roster_labels"))
35:
36: #set ($rosterFieldsString = $rosterFieldsString.split(","))
37: #set ($rosterLabelsString = $rosterLabelsString.split(","))
38:
39: #set ($rosterFieldsSize = $tool.list.size($rosterFieldsString))
40: #set ($rosterLabelsSize = $tool.list.size($rosterLabelsString))
41:
42: #if ($rosterFieldsSize > 0 && $rosterLabelsSize > 0 && $rosterFieldsSize == $rosterLabelsSize)
43: #set ($rosterFields = $rosterFieldsString)
44: #set ($rosterLabels = $rosterLabelsString)
45: #end
46: #end
47:
48: #if ($request.getParameter("sort").length() > 0) ## when sort param is available, force the list layout
49: #set ($rosterLayout = "list")
50: #end
51:
52: #macro (printFieldValue $field $defaultValue)
53: #set ($fieldValue = "")
54: #if ($field.contains(">"))
55: #set ($orderedFields = $field.split(">"))
56: #foreach ($orderedField in $orderedFields)
57: #set ($orderedField = $orderedField.trim())
58: #if ($bio.get($orderedField) && $fieldValue.length() == 0)
59: #set ($fieldValue = $bio.get($orderedField))
60: #end
61: #end
62: #else
63: #if ($bio.get($field))
64: #set ($fieldValue = $bio.get($field))
65: #end
66: #end
67: #if ($fieldValue.length() > 0)
68: $fieldValue
69: #else
70: $defaultValue
71: #end
72: #end
73:
74: #macro (printField $field)
75: #set ($splitter = "")
76: #if ($field.contains(": :")) ## multipart fields separated by a space
77: #set ($splitter = ": :")
78: #elseif ($field.contains(":/:")) ## multipart fields separated by a /
79: #set ($splitter = ":/:")
80: #end
81:
82: #if ($splitter.length() > 0)
83: #set ($multipartField = $field.split($splitter))
84: #foreach ($fieldPart in $multipartField)
85: #set ($fieldPart = $fieldPart.trim())
86: #if ($velocityCount > 1)
87: $splitter.charAt(1)
88: #end
89: #printFieldValue($fieldPart "")
90: #end
91: #else
92: #printFieldValue($field "")
93: #end
94: #end
95:
96: #macro (printPlayerAriaLabel $bioinfo)
97: #set ($jerseyNumber = "")
98: #set ($bio = $bioinfo.getDataAsObject().getAttributes())
99: #if ($bio.get("full_name").length() > 0)
100: #set ($fullName = $bio.get("full_name"))
101: #else
102: #set ($firstName = $bio.get("first_name"))
103: #set ($lastName = $bio.get("last_name"))
104: #set ($fullName = "${firstName} ${lastName}")
105: #end
106: #if ($bio.get("number").length() > 0)
107: #set ($jerseyNumber = "jersey number ${bio.get('number')}")
108: #end
109: aria-label="${fullName}: ${jerseyNumber}: full bio"
110: #end
111:
112: #macro (printHeadshot $bioinfo)
113: #set ($bio = $bioinfo.getDataAsObject().getAttributes())
114: #set ($alt = "${bio.get('first_name')} ${bio.get('last_name')} bio photo")
115:
116: #if ($bioinfo.publishedHeadshots.size() > 0)
117: #set ($src = $bioinfo.publishedHeadshots.get(0).url)
118: #elseif ($website.exists("/images/setup/default-headshot.png"))
119: #set ($src = "/images/setup/default-headshot.png")
120: #elseif ($website.exists("/images/setup/headshot_default.jpg"))
121: #set ($src = "/images/setup/headshot_default.jpg")
122: #else
123: #set ($src = "/info/images/default-headshot.png")
124: #end
125:
126: #set ($src = "${src}?max_height=576&max_width=576&crop=1")
127: <img class="img-fluid w-100" src="${src}" alt="${alt}" tabindex="0" />
128: #end ## macro printHeadshot
129:
130: #macro (printHeadshotBg $bioinfo)
131: #set ($bio = $bioinfo.getDataAsObject().getAttributes())
132: #if ($bioinfo.publishedHeadshots.size() > 0)
133: #set ($src = $bioinfo.publishedHeadshots.get(0).url)
134: #elseif ($website.exists("/images/setup/default-headshot.png"))
135: #set ($src = "/images/setup/default-headshot.png")
136: #elseif ($website.exists("/images/setup/headshot_default.jpg"))
137: #set ($src = "/images/setup/headshot_default.jpg")
138: #else
139: #set ($src = "/info/images/default-headshot.png")
140: #end
141: #set ($src = "${src}?max_height=576&max_width=576&crop=1")
142: <div class="ratio ratio-1x1 d-block">
143: <div style="background-image:url('${src}'); background-position:top center; background-size:cover;"></div>
144: </div>
145: #end ## macro printHeadshotBg
146:
147:
148: #macro (printBannerImage)
149: #if ($page.thumbnailURL)
150: #set ($rosterThumbSize = 1920)
151: #if ($tool.math.toInteger($options.get("roster_thumb_size")))
152: #set ($rosterThumbSize = $tool.math.toInteger($options.get("roster_thumb_size")))
153: #end
154: <div class="roster-banner-img text-center">
155: <picture alt="${page.thumbnailPage.altText}">
156: <source media="(min-width:1200px)" srcset="${page.thumbnailURL}?max_width=1920">
157: <source media="(min-width:992px)" srcset="${page.thumbnailURL}?max_width=1199">
158: <source media="(min-width:578px)" srcset="${page.thumbnailURL}?max_width=991">
159: <source media="(min-width:0px)" srcset="${page.thumbnailURL}?max_width=576">
160: <img class="img-fluid mx-auto" src="${page.thumbnailURL}?max_width=${rosterThumbSize}" alt="${page.thumbnailPage.altText}"/>
161: </picture>
162: </div>
163: #end
164: #end
165:
166: #macro (printArchiveList)
167: #if ($options.get("archive_roster"))
168: #set ($id = "roster-archive-switcher")
169: #if ($request.getParameter("id").length() > 0)
170: #set ($id = $request.getParameter("id"))
171: #end
172:
173: #set ($archiveRosterString = $options.get("archive_roster"))
174: #set ($archiveRosterString = $archiveRosterString.split(","))
175: #set ($isArchivePage = false)
176: #if ($tool.list.size($archiveRosterString) > 0)
177:
178: <div id="${id}" class="archive-roster-switcher-template float-right ml-3">
179: <div class="input-group mb-3">
180: <div class="input-group-prepend">
181: <label class="input-group-text" for="$id-options">Archive Rosters</label>
182: </div>
183: <select class="custom-select" id="${id}-options" onchange="location=this.value;" aria-label="Change the season by selecting an option from the list below">
184: #foreach ($string in $archiveRosterString)
185: #set ($archiveRoster = $string.split(":"))
186: #if ($tool.list.size($archiveRoster) == 2)
187: #set ($archiveUrl = $tool.list.get($archiveRoster, 0).trim())
188: #set ($archiveLabel = $tool.list.get($archiveRoster, 1).trim())
189: #if ($archiveUrl != $page.url)
190: <option value="$archiveUrl" data-url="$archiveUrl" data-title="$archiveLabel">$archiveLabel</option>
191: #else
192: <option value="$archiveUrl" data-url="$archiveUrl" data-title="$archiveLabel" selected>$archiveLabel</option>
193: #set ($isArchivePage = true)
194: #end
195: #end
196: #end
197: </select>
198: </div>
199: </div>
200: #end
201: #end
202: #end ## macro printArchiveList
203:
204: #macro (printViewButtons)
205: <div class="btn-toolbar flex-fill justify-content-between d-print-none" role="toolbar" aria-label="Roster tool bar">
206: <div class="me-2" role="group" aria-label="Print freindly version">
207: <a href="${page.url}?dec=printer-decorator" class="btn btn-outline-secondary"><span class="fa fa-print"></span> Print</a>
208: </div>
209: #if ($showHeadshotView)
210: <div class="btn-group btn-group-toggle mb-3 ms-auto me-3" role="group" data-bs-toggle="buttons">
211: <a class="roster-view btn btn-outline-secondary #if($rosterLayout == 'list') active #end" data-view="list" href="$page.url?view=list">
212: <span class="fas fa-list" aria-hidden="true"></span>
213: <span class="sr-only">List View</span>
214: </a>
215: <a class="roster-view btn btn-outline-secondary #if($rosterLayout == 'headshot') active #end" data-view="headshot" href="$page.url?view=headshot">
216: <span class="fas fa-user" aria-hidden="true"></span>
217: <span class="sr-only">Headshot View</span>
218: </a>
219: </div>
220: #end
221: </div>
222:
223: #end ## macro printViewButtons
224:
225: #set ($socialBrands = ["facebook", "twitter", "instagram", "youtube", "twitch", "tiktok"])
226:
227: #macro (buildSocialLink $brand $handle $icons $class)
228: #if($brand == "facebook")
229: #set($socialHost = "https://www.facebook.com")
230: #elseif($brand == "twitter")
231: #set($socialHost = "https://twitter.com")
232: #elseif($brand == "instagram")
233: #set($socialHost = "https://www.instagram.com")
234: #elseif($brand == "tikTok")
235: #set($socialHost = "https://www.tiktok.com")
236: #elseif($brand == "twitch")
237: #set($socialHost = "https://www.twitch.tv")
238: #elseif($brand == "youtube")
239: #set($socialHost = "https://www.youtube.com")
240: #end
241:
242: #if($socialHost.length() > 0 )
243: #set($url = "${socialHost}/${handle}")
244: #else
245: #set($url = "")
246: #end
247:
248: #set($icons = $Boolean.parseBoolean($icons))
249: #if($icons == true)
250: #set ($iconClass = $brand.toLowerCase())
251: #if ($iconClass == "twitter")
252: #set ($iconClass = "x-twitter")
253: #end
254: <a href="$url" class="$class" target="_blank"><span aria-label="$brand" class="fa fa-brands fa-${iconClass}"></span></a>
255: #else
256: <a href="$url" class="$class" target="_blank">$handle</a>
257: #end
258: #end
259:
260:
261:
262: #macro (printListLayout)
263: #set ($rosterFields = ["number","first_name: :last_name","position","year","height","weight","hometown:/:highschool"])
264: #set ($rosterLabels = ["No.","Name","Pos.","Cl.","Ht.","Wt.","Hometown/High School"])
265: #set ($rosterSortables = ["number","last_name","year","position"])
266:
267: #if ($options.get("roster_fields") && $options.get("roster_labels"))
268: #set ($rosterFieldsString = $options.get("roster_fields"))
269: #set ($rosterLabelsString = $options.get("roster_labels"))
270:
271: #set ($rosterFieldsString = $rosterFieldsString.split(","))
272: #set ($rosterLabelsString = $rosterLabelsString.split(","))
273:
274: #set ($rosterFieldsSize = $tool.list.size($rosterFieldsString))
275: #set ($rosterLabelsSize = $tool.list.size($rosterLabelsString))
276:
277: #if ($rosterFieldsSize > 0 && $rosterLabelsSize > 0 && $rosterFieldsSize == $rosterLabelsSize)
278: #set ($rosterFields = $rosterFieldsString)
279: #set ($rosterLabels = $rosterLabelsString)
280: #end
281: #end
282:
283: #if ($options.get("roster_sortable"))
284: #set ($rosterSortablesString = $options.get("roster_sortable"))
285: #set ($rosterSortables = $rosterSortablesString.split(","))
286: #end
287:
288: #set ($sortBy = "")
289: #set($sortBy = $formatter.escapeXml($request.getParameter("sort")))
290: #if ($sortBy.length() > 0)
291: #set ($headlines = $headlines.sortedBy($sortBy))
292: #end
293:
294: <div class="table-responsive">
295: <table class="table table-hover">
296: <thead class="thead-dark">
297: <tr>
298: #foreach($field in $rosterFields)
299: #set ($fieldLabel = $tool.list.get($rosterLabels, $tool.math.sub($velocityCount, 1)))
300: #set ($isSortable = false)
301: #set ($sortableField = "")
302:
303: #if ($tool.list.size($rosterSortables) > 0)
304: #foreach ($sortable in $rosterSortables)
305: #if ($field.contains($sortable))
306: #set ($isSortable = true)
307: #set ($sortableField = $sortable)
308: #end
309: #end
310: #end
311:
312: #set ($ariaLabelColumn = $sortableField)
313: #if ($sortableField.contains('custom'))
314: #set ($ariaLabelColumn = $fieldLabel)
315: #end
316:
317: #set ($width = "")
318: #if ($fieldLabel.contains('No'))
319: #set ($width = "w-1")
320: #end
321:
322: <th scope="col" class="text-nowrap ${width} col${velocityCount} #if($isSortable)sortable #end #if($sortBy == $sortableField) sorted #end">
323:
324: #if ($isSortable)
325: <a href="$page.url?sort=${sortableField}" title="Sort using this column" class="sortable text-reset" role="button" >$fieldLabel
326: #if($sortBy == $sortableField)
327: <span class="fa fa-sort-asc" aria-hidden="true"></span>
328: #else
329: <span class="fa fa-sort text-muted" aria-hidden="true"></span>
330: #end
331: </a>
332: #else
333: $fieldLabel
334: #end
335: </th>
336: #end
337: </tr>
338: </thead>
339: <tbody>
340: #foreach ($bioinfo in $headlines)
341: #set ($bio = $bioinfo.getDataAsObject().getAttributes())
342: <tr>
343: #foreach($field in $rosterFields)
344: #set ($dataLabel = $tool.list.get($rosterLabels, $tool.math.sub($velocityCount, 1)))
345: #if ($field.contains("first_name") || $field.contains("last_name") || $field.contains("full_name"))
346: <th scope="row" class="text-inherit">
347: <a #printPlayerAriaLabel($bioinfo) href="$bioinfo.url">#printField($field)</a>
348: <div class="social-links-inline d-inline-block ml-2 ms-2">
349: <ul class="d-flex d-flex justify-content-between align-items-center p-0 m-0 gap-0" tabindex="0">
350: #foreach ($brand in $socialBrands)
351: #if ($bio.get("$brand").length())
352: #set($link = $bio.get("$brand"))
353: <li class="d-flex justify-content-between align-items-center flex-column">
354: #buildSocialLink($brand.toLowerCase(), $link, true, "fs-sm small p-1")
355: </li>
356: #end
357: #end
358: </ul>
359: </div>
360: </th>
361: #else
362: #if ($dataLabel.contains('No'))
363: <td class="text-nowrap jersey-number d-md-none">
364: <span class="badge badge-secondary">#printField($field)</span>
365: </td>
366: #end
367: #if ($dataLabel.contains("Pos.") || $dataLabel.contains("Num.") || $dataLabel.contains("Wt.") || $dataLabel.contains("Ht.") || $dataLabel.contains("Cl.") || $dataLabel.contains("B/T"))
368: #set ($textWrapClass = "text-nowrap")
369: #else
370: #set ($textWrapClass = "text-inherit")
371: #end
372: <td class="$textWrapClass #if ($dataLabel.contains('No')) jersey-number d-none d-md-table-cell #end">
373: <span class="label font-weight-bold fw-bold d-md-none">$dataLabel:</span>
374: #if ($field.contains("email_address"))
375: <a href="mailto:${bio.get("email_address")}">#printField($field)</a>
376: #else
377: #printField($field)
378: #end
379: </td>
380: #end
381: #end
382: </tr>
383: #end
384: </tbody>
385: </table>
386: </div>
387: #end ## macro printListLayout
388:
389: #macro (printHeadshotLayout)
390: #set ($headshotSize = "medium")
391: #if ($options.get("roster_headshot_size"))
392: #set ($headshotSize = $options.get("roster_headshot_size"))
393: #end
394:
395: <div class="roster-headshot-container">
396: <div class="row player-cards g-3 headshot-size-${headshotSize}">
397: #foreach ($bioinfo in $headlines)
398: #if($headshotSize == "large")
399: #set ($cardClass = "col-12 col-sm-6 col-md-4 col-lg-4")
400: #elseif($headshotSize == "medium")
401: #set ($cardClass = "col-12 col-sm-6 col-md-4 col-lg-3")
402: #elseif($headshotSize == "small")
403: #set ($cardClass = "col-12 col-sm-6 col-md-4 col-lg-2")
404: #end
405:
406: #set ($bio = $bioinfo.getDataAsObject().getAttributes())
407: <div class="player-card-wrapper ${cardClass} my-3 d-flex align-items-stretch position-relative">
408: <div class="player-card card shadow w-100">
409: <div #printPlayerAriaLabel($bioinfo) class="card-front card-data w-100 h-100 bg-white rounded d-flex flex-column align-items-center justify-content-between">
410: <div class="player-image position-relative w-100 overflow-hidden">
411: #printHeadshotBg($bioinfo)
412: </div>
413: <div class="player-card-footer p-3 d-flex justify-content-between align-items-center flex-grow w-100 position-relative">
414: #if ($bio.get("first_name") && $bio.get("last_name"))
415: <a href="$bioinfo.url" class="text-decoration-none flex-fill">
416: <span class="name">
417: <span class="firstname text-truncate d-block fs-6">$bio.get("first_name")</span>
418: <span class="lastname text-truncate d-block fs-5">$bio.get("last_name")#if($bio.get("year").length() > 0) - $bio.get("year")#end</span>
419: </span>
420: </a>
421: #end
422: <ul class="d-flex d-flex justify-content-between align-items-center p-0 m-0 gap-2" tabindex="0">
423: #foreach ($brand in $socialBrands)
424: #if ($bio.get("$brand").length())
425: #set($link = $bio.get("$brand"))
426: <li class="d-flex justify-content-between align-items-center flex-column">
427: #buildSocialLink($brand.toLowerCase(), $link, true, "")
428: </li>
429: #end
430: #end
431: </ul>
432:
433: #if ($bio.get("number") && $!bio.get("number").length() > 0)
434: <span class="number font-weight-bold fw-bold position-relative float-right text-center text-white" tabindex="0" aria-label="Jersey Number $bio.get('number')">$bio.get("number")</span>
435: #end
436: <div class="vm-btn btn btn-sm btn-secondary overflow-hidden position-absolute font-weight-bold fw-bold z-index-1 lh-base" style="line-height:initial;"><span class="fa fa-ellipsis-v"></span><span class="sr-only visually-hidden">View More</span></div>
437: </div>
438: </div>
439: <div class="player-short-bio card-back card-data w-100 h-100 overflow-hidden p-3 position-absolute" >
440: <div class="bio-content d-flex flex-column gap-2 h-100">
441: <div class="card-back-head pb-2 mb-2">
442: #if ($bio.get("first_name") && $bio.get("last_name"))
443: <div class="name d-flex align-items-center justify-content-start gap-2 p-0">
444: <div class="pl-profile w-25 h-100 mr-3">
445: #printHeadshot($bioinfo)
446: </div>
447: <div class="pl-name-wrap d-flex flex-column gap-2">
448: #if ($bio.get("number") && $!bio.get("number").length() > 0)
449: <span class="number font-weight-bold fw-bold fs-5 nowrap">#$bio.get("number")</span>
450: #end
451: <div class="pl-name text-decoration-none mt-0">
452: <span class="firstname text-truncate d-block fs-6">$bio.get("first_name")</span>
453: <span class="lastname text-truncate d-block fs-5">$bio.get("last_name")</span>
454: </div>
455: </div>
456: </div>
457: #end
458: <span class="close position-absolute btn btn-sm btn-link">
459: <span class="fa fa-close fa-sm fa-times" aria-hidden="true"></span>
460: <span class="sr-only visually-hidden">Close</span>
461: </span>
462: </div>
463: <div class="bio-data">
464: <ul class="list-unstyled small">
465: #if ($bio.get("year").length() > 0)
466: <li tabindex="0" class="p-0 m-0"><span class="font-weight-bold fw-bold">Class:</span> $bio.get("year")</li>
467: #end
468: #if ($bio.get("height").length() > 0)
469: <li tabindex="0" class="p-0 m-0"><span class="font-weight-bold fw-bold">Height:</span> $bio.get("height")</li>
470: #end
471: #if ($bio.get("bats_throws").length() > 0)
472: <li tabindex="0" class="p-0 m-0"><span class="font-weight-bold fw-bold">B/T:</span> $bio.get("bats_throws")</li>
473: #end
474: #if ($bio.get("position").length() > 0)
475: <li tabindex="0" class="p-0 m-0"><span class="font-weight-bold fw-bold">Position:</span> $bio.get("position")</li>
476: #end
477: #if ($bio.get("hometown").length() > 0)
478: <li tabindex="0" class="p-0 m-0"><span class="font-weight-bold fw-bold">Hometown:</span> $bio.get("hometown")</li>
479: #end
480: #if ($bio.get("highschool").length() > 0)
481: <li tabindex="0" class="p-0 m-0"><span class="font-weight-bold fw-bold">Highschool:</span> $bio.get("highschool")</li>
482: #end
483: <li tabindex="0" class="p-0 m-0">
484: <ul class="list-group list-group-horizontal p-0 mt-2" tabindex="0">
485: #foreach ($brand in $socialBrands)
486: #if ($bio.get("$brand").length())
487: #set($link = $bio.get("$brand"))
488: <li class="list-group-item p-2">
489: #buildSocialLink($brand.toLowerCase(), $link, true, "")
490: </li>
491: #end
492: #end
493: </ul>
494: </li>
495:
496: </ul>
497: </div>
498: <a href="$bioinfo.url" class="btn btn-primary full-bio font-weight-bold fw-bold btn-block text-center overflow-hidden">Full Bio</a>
499: </div>
500: </div>
501: </div>
502: </div>
503: #end
504: </div>
505: </div>
506: #end ## macro printHeadshotLayout
507:
508: #if ($request.getParameter("ajax").length() > 0)
509:
510: #if ($rosterLayout == "list")
511: #printListLayout
512: #elseif ($rosterLayout == "headshot")
513: #printHeadshotLayout
514: #end
515:
516: $website.decorate("")
517:
518: #else
519: <div class="page-content roster-content" data-module="bs-scripts/roster-layout" data-page-url="$page.url" data-page-title="$!page.title - ${website.profile.siteName}">
520:
521:
522: #set ($pageTitle = "Roster")
523: #if ($page.title.length() > 0)
524: #set ($pageTitle = $page.title)
525: #end
526: #if ($page.title.length() > 0)
527: <h1 class="page-heading">$pageTitle</h1>
528: #end
529: $!request.setAttribute("pageTitle", "${pageTitle}")
530:
531: $!request.setAttribute("pageDescription", "The official $pageDescription")
532:
533: #printBannerImage
534:
535: <div class="d-flex justify-content-between flex-column-reverse flex-md-row pt-3 border-top border-bottom my-3">
536: #printViewButtons
537: #printArchiveList
538: </div>
539:
540: #if ($rosterLayout == "list")
541:
542: #if ($options.get("roster_sortable"))
543: #set ($rosterSortablesString = $options.get("roster_sortable"))
544: #set ($rosterSortables = $rosterSortablesString.split(","))
545: #end
546:
547: #set ($sortBy = "")
548: #set($sortBy = $request.getParameter("sort"))
549: #if ($sortBy.length() > 0)
550: #set ($headlines = $headlines.sortedBy($sortBy))
551: #end
552:
553: <div class="roster-data style-list">#printListLayout</div>
554:
555: #elseif ($rosterLayout == "headshot")
556: <div class="roster-data style-headshot">#printHeadshotLayout</div>
557:
558: #end ## roster-layout
559:
560: #set ($rosterFooter = "${page.url}-footer")
561: #if ($website.exists($rosterFooter))
562: <div class="roster-footer" data-fetch="$rosterFooter">$website.include($rosterFooter)</div>
563: #end
564: </div> ## page-content
565:
566: ## GLOBAL ADS SERVER
567: #if ($website.ads.isAdvertisingEnabled('ROSTER'))
568: $website.includeAgain("global-adserver-slots?adSlot=roster")
569: #end
570:
571: #end ## if ajax
572:
573: <script type="text/javascript">
574: $(".vm-btn").click(function(e){
575: $('.player-card.flipped').removeClass('flipped');
576: $(this).closest('.player-card').addClass('flipped');
577: e.stopPropagation();
578: });
579:
580: $(document).on("click", function(e) {
581: if ($(e.target).is(".player-card") === false) {
582: $(".player-card").removeClass("flipped");
583: }
584: });
585:
586: $(".card-back .close").click(function(){
587: $(".player-card").removeClass("flipped");
588: });
589: </script>
|